package com.asmtest.visitor;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author yutianhong
 * @version 1.0
 * @since 2023/11/28 10:29
 */
@MyAnnotation(name = "myClass", desc = "test type")
public interface MyClass {

    String msg = "Hello,World.";

    @MyAnnotation(name = "bar", desc = "test method")
    <T extends List<?>, N> Map<String, T> bar(
            @MyAnnotation(name = "qux", desc = "test param") String qux,
            @MyAnnotation(name = "b") int b,
            @MyAnnotation(name = "generic1") Map<Integer, Float> map,
            @MyAnnotation(name = "generic2") Set<List<Long>> set,
            @MyAnnotation(name = "genericT") T t,
            @MyAnnotation(name = "generic_complexSet") Set<Map<String, Map<List<String>, Long>>> complexSet,
            @MyAnnotation(name = "with_?") List<?> l1,
            @MyAnnotation(name = "with_T") List<T> l2,
            @MyAnnotation(name = "extends") List<? extends Number> l3,
            @MyAnnotation(name = "super") List<? super Set<?>> l4,
            @MyAnnotation(name = "ListT") List<List<T>> l5,
            @MyAnnotation(name = "genericN") N n,
            @MyAnnotation(name = "listN1") List<N> listN,
            @MyAnnotation(name = "listN2") List<List<N>> listN2);
}
